home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / MOUSPP30.ARJ / CURSOR.H next >
C/C++ Source or Header  |  1992-02-23  |  16KB  |  438 lines

  1. /* -------------------------------------------------------------------- */
  2. /* Mouse++ Version 3.0             cursor.h            Revised 05/01/91 */
  3. /*                                                                      */
  4. /* General mouse class for Turbo C++/Borland C++.                       */
  5. /* Copyright 1991, 1992 by Carl W. Moreland                             */
  6. /* This source code may be freely distributed as long as the copyright  */
  7. /* notice remains intact.                                               */
  8. /* -------------------------------------------------------------------- */
  9.  
  10. #ifndef M_CURSOR
  11. #define M_CURSOR
  12.  
  13. static unsigned defaultimage[32] =
  14. {
  15.   0x3FFF,       /* 0011111111111111 */
  16.   0x1FFF,       /* 0001111111111111 */
  17.   0x0FFF,       /* 0000111111111111 */
  18.   0x07FF,       /* 0000011111111111 */
  19.   0x03FF,       /* 0000001111111111 */
  20.   0x01FF,       /* 0000000111111111 */
  21.   0x00FF,       /* 0000000011111111 */
  22.   0x007F,       /* 0000000001111111 */
  23.   0x003F,       /* 0000000000111111 */
  24.   0x001F,       /* 0000000000011111 */
  25.   0x01FF,       /* 0000000111111111 */
  26.   0x10FF,       /* 0001000011111111 */
  27.   0x30FF,       /* 0011000011111111 */
  28.   0x787F,       /* 0111100001111111 */
  29.   0xF87F,       /* 1111100001111111 */
  30.   0xFC7F,       /* 1111110001111111 */
  31.  
  32.   0x0000,       /* 0000000000000000 */
  33.   0x4000,       /* 0100000000000000 */
  34.   0x6000,       /* 0110000000000000 */
  35.   0x7000,       /* 0111000000000000 */
  36.   0x7800,       /* 0111100000000000 */
  37.   0x7C00,       /* 0111110000000000 */
  38.   0x7E00,       /* 0111111000000000 */
  39.   0x7F00,       /* 0111111100000000 */
  40.   0x7F80,       /* 0111111110000000 */
  41.   0x7C00,       /* 0111110000000000 */
  42.   0x6C00,       /* 0110110000000000 */
  43.   0x4600,       /* 0100011000000000 */
  44.   0x0600,       /* 0000011000000000 */
  45.   0x0300,       /* 0000001100000000 */
  46.   0x0300,       /* 0000001100000000 */
  47.   0x0000        /* 0000000000000000 */
  48. };
  49.  
  50. static unsigned checkimage[32] =
  51. {
  52.   0xFFF0,       /* 1111111111110000 */
  53.   0xFFE0,       /* 1111111111100000 */
  54.   0xFFC0,       /* 1111111111000000 */
  55.   0xFF81,       /* 1111111110000001 */
  56.   0xFF03,       /* 1111111100000011 */
  57.   0x0607,       /* 0000011000000111 */
  58.   0x000F,       /* 0000000000001111 */
  59.   0x001F,       /* 0000000000011111 */
  60.   0xC03F,       /* 1100000000111111 */
  61.   0xF07F,       /* 1111000001111111 */
  62.   0xFFFF,       /* 1111111111111111 */
  63.   0xFFFF,       /* 1111111111111111 */
  64.   0xFFFF,       /* 1111111111111111 */
  65.   0xFFFF,       /* 1111111111111111 */
  66.   0xFFFF,       /* 1111111111111111 */
  67.   0xFFFF,       /* 1111111111111111 */
  68.  
  69.   0x0000,       /* 0000000000000000 */
  70.   0x0006,       /* 0000000000000110 */
  71.   0x000C,       /* 0000000000001100 */
  72.   0x0018,       /* 0000000000011000 */
  73.   0x0030,       /* 0000000000110000 */
  74.   0x0060,       /* 0000000001100000 */
  75.   0x70C0,       /* 0111000011000000 */
  76.   0x1D80,       /* 0001110110000000 */
  77.   0x0700,       /* 0000011100000000 */
  78.   0x0000,       /* 0000000000000000 */
  79.   0x0000,       /* 0000000000000000 */
  80.   0x0000,       /* 0000000000000000 */
  81.   0x0000,       /* 0000000000000000 */
  82.   0x0000,       /* 0000000000000000 */
  83.   0x0000,       /* 0000000000000000 */
  84.   0x0000        /* 0000000000000000 */
  85. };
  86.  
  87. static unsigned crossimage[32] =
  88. {
  89.   0xFFFF,       /* 1111111111111111 */
  90.   0xFFFF,       /* 1111111111111111 */
  91.   0xFFFF,       /* 1111111111111111 */
  92.   0xFFFF,       /* 1111111111111111 */
  93.   0xFFFF,       /* 1111111111111111 */
  94.   0xFFFF,       /* 1111111111111111 */
  95.   0xFFFF,       /* 1111111111111111 */
  96.   0xFFFF,       /* 1111111111111111 */
  97.   0xFFFF,       /* 1111111111111111 */
  98.   0xFFFF,       /* 1111111111111111 */
  99.   0xFFFF,       /* 1111111111111111 */
  100.   0xFFFF,       /* 1111111111111111 */
  101.   0xFFFF,       /* 1111111111111111 */
  102.   0xFFFF,       /* 1111111111111111 */
  103.   0xFFFF,       /* 1111111111111111 */
  104.   0xFFFF,       /* 1111111111111111 */
  105.  
  106.   0x8002,       /* 1000000000000010 */
  107.   0x4004,       /* 0100000000000100 */
  108.   0x2008,       /* 0010000000001000 */
  109.   0x1010,       /* 0001000000010000 */
  110.   0x0820,       /* 0000100000100000 */
  111.   0x0440,       /* 0000010001000000 */
  112.   0x0280,       /* 0000001010000000 */
  113.   0x0000,       /* 0000000000000000 */
  114.   0x0280,       /* 0000001010000000 */
  115.   0x0440,       /* 0000010001000000 */
  116.   0x0820,       /* 0000100000100000 */
  117.   0x1010,       /* 0001000000010000 */
  118.   0x2008,       /* 0010000000001000 */
  119.   0x4004,       /* 0100000000000100 */
  120.   0x8002,       /* 1000000000000010 */
  121.   0x0000        /* 0000000000000000 */
  122. };
  123.  
  124. static unsigned plusimage[32] =
  125. {
  126.   0xFC7F,       /* 1111110001111111 */
  127.   0xFC7F,       /* 1111110001111111 */
  128.   0xFC7F,       /* 1111110001111111 */
  129.   0xFC7F,       /* 1111110001111111 */
  130.   0xFC7F,       /* 1111110001111111 */
  131.   0xFC7F,       /* 1111110001111111 */
  132.   0x0001,       /* 0000000000000001 */
  133.   0x0001,       /* 0000000000000001 */
  134.   0x0001,       /* 0000000000000001 */
  135.   0xFC7F,       /* 1111110001111111 */
  136.   0xFC7F,       /* 1111110001111111 */
  137.   0xFC7F,       /* 1111110001111111 */
  138.   0xFC7F,       /* 1111110001111111 */
  139.   0xFC7F,       /* 1111110001111111 */
  140.   0xFC7F,       /* 1111110001111111 */
  141.   0xFFFF,       /* 1111111111111111 */
  142.  
  143.   0x0000,       /* 0000000000000000 */
  144.   0x0100,       /* 0000000100000000 */
  145.   0x0100,       /* 0000000100000000 */
  146.   0x0100,       /* 0000000100000000 */
  147.   0x0100,       /* 0000000100000000 */
  148.   0x0100,       /* 0000000100000000 */
  149.   0x0100,       /* 0000000100000000 */
  150.   0x7FFC,       /* 0111111111111100 */
  151.   0x0100,       /* 0000000100000000 */
  152.   0x0100,       /* 0000000100000000 */
  153.   0x0100,       /* 0000000100000000 */
  154.   0x0100,       /* 0000000100000000 */
  155.   0x0100,       /* 0000000100000000 */
  156.   0x0100,       /* 0000000100000000 */
  157.   0x0000,       /* 0000000000000000 */
  158.   0x0000        /* 0000000000000000 */
  159. };
  160.  
  161. static unsigned hourglassimage[32] =
  162. {
  163.   0x8001,       /* 1000000000000001 */
  164.   0x8001,       /* 1000000000000001 */
  165.   0xC003,       /* 1100000000000011 */
  166.   0xC003,       /* 1100000000000011 */
  167.   0xE007,       /* 1110000000000111 */
  168.   0xF00F,       /* 1111000000001111 */
  169.   0xF81F,       /* 1111100000011111 */
  170.   0xF81F,       /* 1111100000011111 */
  171.   0xF81F,       /* 1111100000011111 */
  172.   0xF81F,       /* 1111100000011111 */
  173.   0xF00F,       /* 1111000000001111 */
  174.   0xE007,       /* 1110000000000111 */
  175.   0xC003,       /* 1100000000000011 */
  176.   0xC003,       /* 1100000000000011 */
  177.   0x8001,       /* 1000000000000001 */
  178.   0x8001,       /* 1000000000000001 */
  179.  
  180.   0x0000,       /* 0000000000000000 */
  181.   0x3FFC,       /* 0011111111111100 */
  182.   0x1008,       /* 0001000000001000 */
  183.   0x1C38,       /* 0001110000111000 */
  184.   0x0FF0,       /* 0000111111110000 */
  185.   0x07E0,       /* 0000011111100000 */
  186.   0x0240,       /* 0000001001000000 */
  187.   0x0240,       /* 0000001001000000 */
  188.   0x0240,       /* 0000001001000000 */
  189.   0x0240,       /* 0000001001000000 */
  190.   0x0520,       /* 0000010100100000 */
  191.   0x0890,       /* 0000100010010000 */
  192.   0x1188,       /* 0001000110001000 */
  193.   0x17E8,       /* 0001011111101000 */
  194.   0x3FFC,       /* 0011111111111100 */
  195.   0x0000        /* 0000000000000000 */
  196. };
  197.  
  198. static unsigned handimage[32] =
  199. {
  200.   0xF3FF,       /* 1111001111111111 */
  201.   0xE1FF,       /* 1110000111111111 */
  202.   0xE1FF,       /* 1110000111111111 */
  203.   0xE1FF,       /* 1110000111111111 */
  204.   0xE1FF,       /* 1110000111111111 */
  205.   0xE04F,       /* 1110000001001111 */
  206.   0xE001,       /* 1110000000000001 */
  207.   0XE000,       /* 1110000000000000 */
  208.   0x8000,       /* 1000000000000000 */
  209.   0x0000,       /* 0000000000000000 */
  210.   0x0000,       /* 0000000000000000 */
  211.   0x0000,       /* 0000000000000000 */
  212.   0x0000,       /* 0000000000000000 */
  213.   0x0000,       /* 0000000000000000 */
  214.   0x0000,       /* 0000000000000000 */
  215.   0x0000,       /* 0000000000000000 */
  216.  
  217.   0x0C00,       /* 0000110000000000 */
  218.   0x1200,       /* 0001001000000000 */
  219.   0x1200,       /* 0001001000000000 */
  220.   0x1200,       /* 0001001000000000 */
  221.   0x1200,       /* 0001001000000000 */
  222.   0x13B0,       /* 0001001110110000 */
  223.   0x124E,       /* 0001001001001110 */
  224.   0X1249,       /* 0001001001001001 */
  225.   0x7249,       /* 0111001001001001 */
  226.   0x9001,       /* 1001000000000001 */
  227.   0x9001,       /* 1001000000000001 */
  228.   0X9001,       /* 1001000000000001 */
  229.   0x8001,       /* 1000000000000001 */
  230.   0x8001,       /* 1000000000000001 */
  231.   0x8001,       /* 1000000000000001 */
  232.   0xFFFF        /* 1111111111111111 */
  233. };
  234.  
  235. static unsigned gunimage[32] =
  236. {
  237.   0xFFFF,       /* 1111111111111111 */
  238.   0xFFFF,       /* 1111111111111111 */
  239.   0xFFFF,       /* 1111111111111111 */
  240.   0x0001,       /* 0000000000000001 */
  241.   0x0001,       /* 0000000000000001 */
  242.   0x0001,       /* 0000000000000001 */
  243.   0x0001,       /* 0000000000000001 */
  244.   0xC001,       /* 1100000000000001 */
  245.   0xF801,       /* 1111100000000001 */
  246.   0xF801,       /* 1111100000000001 */
  247.   0xF801,       /* 1111100000000000 */
  248.   0xFF80,       /* 1111111110000000 */
  249.   0xFFC0,       /* 1111111111000000 */
  250.   0xFFC0,       /* 1111111111000000 */
  251.   0xFFFF,       /* 1111111111111111 */
  252.   0xFFFF,       /* 1111111111111111 */
  253.  
  254.   0x0000,       /* 0000000000000000 */
  255.   0x0000,       /* 0000000000000000 */
  256.   0x0000,       /* 0000000000000000 */
  257.   0x0000,       /* 0000000000000000 */
  258.   0x7FFC,       /* 0111111111111100 */
  259.   0x7FFC,       /* 0111111111111100 */
  260.   0x1FFC,       /* 0001111111111100 */
  261.   0x02B8,       /* 0000001010111000 */
  262.   0x023C,       /* 0000001000111100 */
  263.   0x03FC,       /* 0000001111111100 */
  264.   0x003C,       /* 0000000000111100 */
  265.   0x001E,       /* 0000000000011110 */
  266.   0x001E,       /* 0000000000011110 */
  267.   0x0000,       /* 0000000000000000 */
  268.   0x0000,       /* 0000000000000000 */
  269.   0x0000        /* 0000000000000000 */
  270. };
  271.  
  272. static unsigned ibeamimage[32] =
  273. {
  274.   0xFFFF,       /* 1111111111111111 */
  275.   0xFFFF,       /* 1111111111111111 */
  276.   0xFFFF,       /* 1111111111111111 */
  277.   0xFFFF,       /* 1111111111111111 */
  278.   0xFFFF,       /* 1111111111111111 */
  279.   0xFFFF,       /* 1111111111111111 */
  280.   0xFFFF,       /* 1111111111111111 */
  281.   0xFFFF,       /* 1111111111111111 */
  282.   0xFFFF,       /* 1111111111111111 */
  283.   0xFFFF,       /* 1111111111111111 */
  284.   0xFFFF,       /* 1111111111111111 */
  285.   0xFFFF,       /* 1111111111111111 */
  286.   0xFFFF,       /* 1111111111111111 */
  287.   0xFFFF,       /* 1111111111111111 */
  288.   0xFFFF,       /* 1111111111111111 */
  289.   0xFFFF,       /* 1111111111111111 */
  290.  
  291.   0x3C78,       /* 0011110001111000 */
  292.   0x0280,       /* 0000001010000000 */
  293.   0x0100,       /* 0000000100000000 */
  294.   0x0100,       /* 0000000100000000 */
  295.   0x0100,       /* 0000000100000000 */
  296.   0x0100,       /* 0000000100000000 */
  297.   0x0100,       /* 0000000100000000 */
  298.   0x0100,       /* 0000000100000000 */
  299.   0x0100,       /* 0000000100000000 */
  300.   0x0100,       /* 0000000100000000 */
  301.   0x0100,       /* 0000000100000000 */
  302.   0x0100,       /* 0000000100000000 */
  303.   0x0100,       /* 0000000100000000 */
  304.   0x0100,       /* 0000000100000000 */
  305.   0x0280,       /* 0000001010000000 */
  306.   0x3C78        /* 0011110001111000 */
  307. };
  308.  
  309. static unsigned faceimage[32] =
  310. {
  311.   0xF00F,       /* 1111000000001111 */
  312.   0xC003,       /* 1100000000000011 */
  313.   0x8001,       /* 1000000000000001 */
  314.   0x0000,       /* 0000000000000000 */
  315.   0x1428,       /* 0001010000101000 */
  316.   0x0420,       /* 0000010000100000 */
  317.   0x1818,       /* 0001100000011000 */
  318.   0x0000,       /* 0000000000000000 */
  319.   0x0000,       /* 0000000000000000 */
  320.   0x1008,       /* 0001000000001000 */
  321.   0x0000,       /* 0000000000000000 */
  322.   0x1248,       /* 0001001001001000 */
  323.   0x0240,       /* 0000001001000000 */
  324.   0x8181,       /* 1000000110000001 */
  325.   0xC003,       /* 1100000000000011 */
  326.   0xF00F,       /* 1111000000001111 */
  327.  
  328.   0x0000,       /* 0000000000000000 */
  329.   0x1FF8,       /* 0001111111111000 */
  330.   0x3FFC,       /* 0011111111111100 */
  331.   0x7FFE,       /* 0111111111111110 */
  332.   0x7FFE,       /* 0111111111111110 */
  333.   0x73CE,       /* 0111001111001110 */
  334.   0x73CE,       /* 0111001111001110 */
  335.   0x7FFE,       /* 0111111111111110 */
  336.   0x7FFE,       /* 0111111111111110 */
  337.   0x6FF6,       /* 0110111111110110 */
  338.   0x700E,       /* 0111000000001110 */
  339.   0x7FFE,       /* 0111111111111110 */
  340.   0x7FFE,       /* 0111111111111110 */
  341.   0x3FFC,       /* 0011111111111100 */
  342.   0x1FF8,       /* 0001111111111000 */
  343.   0x0000        /* 0000000000000000 */
  344. };
  345.  
  346. static unsigned jetimage[32] =
  347. {
  348.   0xFEFF,       /* 1111111011111111 */
  349.   0xFC7F,       /* 1111110001111111 */
  350.   0xFC7F,       /* 1111110001111111 */
  351.   0xFC7F,       /* 1111110001111111 */
  352.   0xF83F,       /* 1111100000111111 */
  353.   0xF83F,       /* 1111100000111111 */
  354.   0xF01F,       /* 1111000000011111 */
  355.   0xE00F,       /* 1110000000001111 */
  356.   0xC007,       /* 1100000000000111 */
  357.   0x8003,       /* 1000000000000011 */
  358.   0x0001,       /* 0000000000000001 */
  359.   0x0001,       /* 0000000000000001 */
  360.   0xF83F,       /* 1111100000111111 */
  361.   0xF01F,       /* 1111000000011111 */
  362.   0xE00F,       /* 1110000000001111 */
  363.   0xE10F,       /* 1110000100001111 */
  364.  
  365.   0x0000,       /* 0000000000000000 */
  366.   0x0100,       /* 0000000100000000 */
  367.   0x0100,       /* 0000000100000000 */
  368.   0x0100,       /* 0000000100000000 */
  369.   0x0380,       /* 0000001110000000 */
  370.   0x0380,       /* 0000001110000000 */
  371.   0x07C0,       /* 0000011111000000 */
  372.   0x0FE0,       /* 0000111111100000 */
  373.   0x1FF0,       /* 0001111111110000 */
  374.   0x3FF8,       /* 0011111111111000 */
  375.   0x7FFC,       /* 0111111111111100 */
  376.   0x0380,       /* 0000001110000000 */
  377.   0x0380,       /* 0000001110000000 */
  378.   0x07C0,       /* 0000011111000000 */
  379.   0x0EE0,       /* 0000111011100000 */
  380.   0x0000        /* 0000000000000000 */
  381. };
  382.  
  383. static unsigned bullseyeimage[32] =
  384. {
  385.   0xFFFF,       /* 1111111111111111 */
  386.   0xF00F,       /* 1111000000001111 */
  387.   0xC003,       /* 1100000000000011 */
  388.   0x8001,       /* 1000000000000001 */
  389.   0x0000,       /* 0000000000000000 */
  390.   0x0000,       /* 0000000000000000 */
  391.   0x0000,       /* 0000000000000000 */
  392.   0x0000,       /* 0000000000000000 */
  393.   0x0000,       /* 0000000000000000 */
  394.   0x0000,       /* 0000000000000000 */
  395.   0x0000,       /* 0000000000000000 */
  396.   0x0000,       /* 0000000000000000 */
  397.   0x8001,       /* 1000000000000001 */
  398.   0xC003,       /* 1100000000000011 */
  399.   0xF00F,       /* 1111000000001111 */
  400.   0xFFFF,       /* 1111111111111111 */
  401.  
  402.   0x0000,       /* 0000000000000000 */
  403.   0x0000,       /* 0000000000000000 */
  404.   0x0FF0,       /* 0000111111110000 */
  405.   0x381C,       /* 0011100000011100 */
  406.   0x6FF6,       /* 0110111111110110 */
  407.   0x5C3A,       /* 0101110000111010 */
  408.   0x57EA,       /* 0101011111101010 */
  409.   0x566A,       /* 0101011001101010 */
  410.   0x566A,       /* 0101011001101010 */
  411.   0x57EA,       /* 0101011111101010 */
  412.   0x5C3A,       /* 0101110000111010 */
  413.   0x6FF6,       /* 0110111111110110 */
  414.   0x381C,       /* 0011100000011100 */
  415.   0x0FF0,       /* 0000111111110000 */
  416.   0x0000,       /* 0000000000000000 */
  417.   0x0000        /* 0000000000000000 */
  418. };
  419.  
  420. static GraphicsCursor gdef      = { 1, 1, defaultimage };
  421. static GraphicsCursor check     = { 6, 8, checkimage };
  422. static GraphicsCursor plus      = { 7, 7, plusimage };
  423. static GraphicsCursor cross     = { 7, 7, crossimage };
  424. static GraphicsCursor gun       = { 4, 1, gunimage };
  425. static GraphicsCursor hand      = { 7, 0, handimage };
  426. static GraphicsCursor hourglass = { 7, 7, hourglassimage };
  427. static GraphicsCursor ibeam     = { 7, 7, ibeamimage };
  428. static GraphicsCursor face      = { 7, 7, faceimage };
  429. static GraphicsCursor jet       = { 7, 0, jetimage };
  430. static GraphicsCursor bullseye  = { 7, 7, bullseyeimage };
  431.  
  432. static TextCursor tdef  = { 0, 0x77FF, 0x7700 };
  433. static TextCursor txt1  = { 0, 0x0000, 0x0E0F };
  434. static TextCursor txt2  = { 0, 0x7000, 0x0E0F };
  435. static TextCursor txt3  = { 0, 0x7F00, 0xFF0F };
  436. static TextCursor txt4  = { 0, 0x00FF, 0x0FD4 };
  437.  
  438. #endif